[レポート] 生成 AI を使って DevOps を推進する実践的な戦略について学んでみた #AWSreinvent #DEV321
リテールアプリ共創部の中野です。
re:Invent 2024 で開催された 「Supercharge your DevOps practices with generative AI」 というセッションについてレポートします。
セッション概要
概要(re:Invent 2024 イベントサイトより抜粋)
In the relentless pursuit of swift and reliable software delivery, DevOps teams face immense challenges. This session explores how generative AI can revolutionize DevOps practices, accelerating deployment frequency, reducing lead time for changes, minimizing service disruptions, and mitigating change failure rates. Through live demos, witness how the transformative power of Amazon Q and Amazon Bedrock can streamline workflows, automate tasks, and enhance collaboration. Leave empowered with practical strategies to harness this cutting-edge technology and propel your team's DevOps excellence.
セッション内のデモでは、コードのリファクタリング、ユニットテスト、インシデント対応における Amazon Q Developer の機能が紹介され、ソフトウェア開発とインシデント管理の事例をいくつかあげていました。
タイトル
DEV321 | Supercharge your DevOps practices with generative AI
スピーカー
Christopher Williams
Julie Gunderson
Chris Williams
LEVEL
300 – Advanced
セッションレポート
アジェンダ
アジェンダは以下の通りです。
-
- Why DevOps?
-
- Measuring your DevOps maturity
-
- Generative AI for DevOps
-
- Accelerating software delivery
-
- Enhancing operations
-
- Summary
レポート
セッションの中で特に気になったポイントについてまとめていきたいと思います。
DevOps の効果
- DevOps が知られる前までは開発者 と IT 運用担当者の間に大きな壁があった
- DevOps は、文化+プロセス+テクノロジーの組み合わせ
- DevOps の効果
- スケール
- 高速なデリバリー
- 信頼性
- コラボレーション
- セキュリティ
- DevOps のプラクティスを導入することで、安定したパフォーマンスを確保し、障害からのリカバリーと継続的なモニタリングを行い、顧客に影響が及ぶ前に問題を発見できるようなる
DevOps の成熟度の測定
DevOps Research and Assessment(DORA)のメトリクスを使用して DevOps の成熟度を測定する概念についての概要説明がありました。
以下の 4 つのメトリクスを紹介しています。
- 変更のリードタイム
- デプロイ頻度
- 変更失敗率
- 平均復旧時間(MTTR)
これらの指標の内、1 つのメトリクスに集中して改善させるのではなくて全体をみた改善に取り組むべきだと述べられていたことには驚きでした。
- 以下のような方法でメトリクスを改善できます
- CI/CD
- IaC
- テストとモニタリング
- バージョン管理、コードレビュー
- フィードバックループ
- セルフヒーリングシステム
Generative AI for DevOps
- 生成 AI は、インテリジェントな意思決定とプロセス最適化の能力を強化するため、次の変革の力となる
- 生成 AI は問題解決能力の強化に寄与する
- この説明を聞いて、複雑な問題の状況でも意思決定の速度をあげられるのは、属人的になりやすい複雑な運用の効率化を行えそう
デモシナリオ(Demo Scenario)
デモシナリオではソフトウェアデリバリの速度をあげるためのいくつかのプラクティスを ToDo リスト形式で説明がありました。
-
デリバリー速度をあげる方法
- 開発生産性の向上
- VS Code 上の Amazon Q でコードをデバッグをチャットでインタラクティブにできるのは、Cursor と操作感がにていて結構有用そう
- 実際に使って、Cursor と比較してみたい
- SDLC のボトルネックを特定
- ファイルの分析を AmazonQ に問い合わせて解説してもらう
- 開発生産性の向上
enhancing operation
運用の改善についても実際の AWS アーキテクチャ図をみながら解説がありました。
- コード品質の改善
- GitHub などのリモートリポジトリに Push された情報を都度 S3 に出力。その内容については CodeGuru でセキュリティレビューすることで脆弱性チェックの自動化をおこなえる
また、Slack にとんできたアラートからインシデントのレポートを自動作成するアーキテクチャと、
過去のインシデントについても検索できるようになっています。
- モニタリングの強化
- AWS Chatbot と連携した Slack にとんできたアラートを確認後、 Lambda を実行するボタンでレポート作成
- 実行後は、StepFunctions でタスクを分割して実行
- CloudTrail で実行されたログを取得
- その情報をもとに Bedrock をつかってレポーティングを作成しているようでした
- 最終的にインシデントレポートを S3 へアップロード
- アップロード後に Bedrock Knowledge Base + OpenSearch へ過去ナレッジとしてベクターインデックスを自動作成
- 過去のナレッジの検索
- Chatbot から検索用 Lambda を直接トリガー
- バックエンドに Bedrock Knowledge Base + OpenSearch を配置しているため、このナレッジベースから取得
- AWS Chatbot と連携した Slack にとんできたアラートを確認後、 Lambda を実行するボタンでレポート作成
このアーキテクチャについては、モニタリングやインシデント対応の方法は非定型で属人化しやすい対応ですが、
調査前にインシデントの内容や対応手順を提示してくれることで運用方法を定型化するヒントになりそうに思いました。
さいごに
以上、「Supercharge your DevOps practices with generative AI」というセッションのレポートでした。
このセッションでは、Amazon Q Developer や Amazon Bedrock などを活用した DevOps プラクティスの改善方法が学べる実践的なセッションでした。
とくに印象的だったのは、開発生産性の向上からインシデント対応まで、DevOps のライフサイクル全体にわたって生成 AI を活用できる可能性が示されたことです。
Amazon Q を使用したコードレビュー、リファクタリング、インシデント分析のデモは、従来の差別化できない面倒な手作業による対応について効率化が期待できることを示していました。
また、このようなインシデント対応の効率化をおこなうために、Bedrock Knowledge Base と OpenSearch をつかった RAG を実装する具体的なアイデアを得られたことはよかったです。
日本に持ち帰って実際のプロジェクトでも活用できないか検討していきたいです。
この記事がどなたかの参考になれば幸いです。